package svpo;


import java.io.Serializable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;



/** <b> Classe que é a representação real dos dados da Empresa..</b>
 *
 * @author Gustavo C.
 * @author Rodrigo M.
 */
public final class Empresa implements Serializable{
    Valida v = new Valida();
    /** <b>  Construtor padrao para Empresa, sem argumentos.<\b> */
    public Empresa(){
        setNome("Company");
        setCnpj("32.111.370/0001-92");
        setLogo("Indefinido");
    }
    /** <b>  Construtor para Empresa.
     * 
     * @param nome      Nome da Empresa
     * @param cnpj      CNPJ da Empresa
     * @param logo      Logotipo da Empresa
     * @param endereco  Endereço da Empresa<\b> */
    public Empresa(String nome, String cnpj, String logo) {
        setNome(nome);
        setCnpj(cnpj);
        setLogo(logo);
        setStatus(1);
    }
    //Atributos da Empresa
    private String nome, cnpj, logo;
     private int status;

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }   
    
    //Métodos setters e getters

     /** <b> Método get para o cnpj da empresa.
     * sem parametros
     */
    public String getCnpj() {
        return cnpj;
    }
    /** <b> Método set para o CNPJ da empresa.
     * @param cnpj CNPJ da Empresa
     */
    public void setCnpj(String cnpj) {
        try {
            
            if (v.ValidaCnpj(cnpj)) {
                this.cnpj = cnpj;
            } else {
                System.out.println( "CNPJ inválido!");
                this.cnpj=null;
            }
        } catch (NumberFormatException ex) {
            System.out.println( "Error CPF :Digite apenas caracters numéricos " );

        }
    }
    /** <b> Método get para o logotipo da empresa.
     * sem parametros
     */
    public String getLogo() {
        return logo;
    }
    /** <b> Método set para o logotipo da empresa.
     * @param logo Logotipo da Empresa
     */
    public void setLogo(String logo) {
        this.logo = logo;
    }
    /** <b> Método get para o nome da empresa.
     * sem parametros
     */
    public String getNome() {
        return nome;
    }
    /** <b> Método set para o nome da empresa.
     * @param nome Nome da Empresa
     */
    public void setNome(String nome) {
        if(v.validaNome(nome)==1){
            this.nome = nome;
        }else{
            System.out.println("Nome Inválido.");
            this.nome=null;
        }
    }
    
}
